﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace WapCrawlerCore
{
    public class Seo
    {
        //public string ConvertString(string str)
        //{
        //    string[] a_vi = {
        //                        "a", "â", "ầ", "ầ", "ấ", "ấ", "ậ", "ậ", "ẩ", "ẩ", "ẫ", "ẫ", "ă", "ằ", "ằ", "ắ",
        //                        "ắ",
        //                        "ặ", "ặ", "ẳ", "ẳ", "ẵ", "ẵ", "à", "à", "á", "á", "ạ", "ạ", "ả", "ả", "ã", "ã"
        //                    };
        //    string[] e_vi = {
        //                        "e", "ê", "ề", "ề", "ế", "ế", "ệ", "ệ", "ể", "ể", "ễ", "ễ", "è", "è", "é", "é",
        //                        "ẹ", "ẹ", "ẻ", "ẻ", "ẽ", "ẽ"
        //                    };

        //    string[] i_vi = { "i", "ì", "ì", "í", "í", "ị", "ị", "ỉ", "ỉ", "ĩ", "ĩ" };
        //    string[] o_vi = {
        //                        "o", "ô", "ồ", "ồ", "ố", "ố", "ộ", "ộ", "ổ", "ổ", "ỗ", "ỗ", "ơ", "ờ", "ờ", "ớ",
        //                        "ớ",
        //                        "ợ", "ợ", "ở", "ở", "ỡ", "ỡ", "ò", "ò", "ó", "ó", "ọ", "ọ", "ỏ", "ỏ", "õ", "õ"
        //                    };
        //    string[] u_vi = {
        //                        "u", "ư", "ừ", "ừ", "ứ", "ứ", "ự", "ự", "ử", "ử", "ữ", "ữ", "ù", "ù", "ú", "ú",
        //                        "ụ"
        //                        , "ụ", "ủ", "ủ", "ũ", "ũ"
        //                    };
        //    string[] y_vi = { "y", "ỳ", "ỳ", "ý", "ý", "ỵ", "ỵ", "ỷ", "ỷ", "ỹ", "ỹ" };
        //    string[] d_vi = { "đ", "d" };

        //    string[] A_vi = {
        //                        "a", "Â", "Ầ", "Ầ", "Ấ", "Ấ", "Ậ", "Ậ", "A", "Ẩ", "Ẩ", "Ẫ", "Ẫ", "Ă", "Ắ", "Ằ", "Ằ",
        //                        "Ắ", "Ặ", "Ặ", "Ẳ", "Ẳ", "Ẵ", "Ẵ", "À", "À", "Á", "Á", "Ạ", "Ạ", "Ả", "Ả", "Ã", "Ã"
        //                    };
        //    string[] E_vi = {
        //                        "e", "Ẽ", "Ẽ", "Ê", "Ề", "E", "Ề", "Ế", "Ế", "Ệ", "Ệ", "Ể", "Ể", "Ễ", "Ễ", "È", "È",
        //                        "É", "É", "Ẹ", "Ẹ", "Ẻ", "Ẻ"
        //                    };
        //    string[] I_vi = { "i", "Ì", "Ì", "Í", "Í", "Ị", "Ị", "I", "Ỉ", "Ỉ", "Ĩ", "Ĩ" };
        //    string[] O_vi = {
        //                        "o", "Ô", "Ồ", "Ồ", "Ố", "Ố", "O", "Ộ", "Ộ", "Ổ", "Ổ", "Ỗ", "Ỗ", "Ờ", "Ơ", "Ờ", "Ớ",
        //                        "Ớ", "Ợ", "Ợ", "Ở", "Ở", "Ỡ", "Ỡ", "Ò", "Ò", "Ó", "Ó", "Ọ", "Ọ", "Ỏ", "Ỏ", "Õ", "Õ"
        //                        ,
        //                    };
        //    string[] U_vi = {
        //                        "u", "Ư", "Ừ", "Ừ", "U", "Ứ", "Ứ", "Ự", "Ự", "Ử", "Ử", "Ữ", "Ữ", "Ù", "Ù", "Ú", "Ú",
        //                        "Ụ", "Ụ", "Ủ", "Ủ", "Ũ", "Ũ"
        //                    };
        //    string[] Y_vi = { "y", "Ỳ", "Ỳ", "Ý", "Ý", "Ỵ", "Y", "Ỵ", "Ỷ", "Ỷ", "Ỹ", "Ỹ" };
        //    string[] D_vi = { "Đ", "d" };
        //    str = str.Replace(" ", "-").Replace("&*#39;", "");
        //    return str;
        //}

        /// <summary>
        /// Chuyển đổi title thành url format
        /// </summary>
        /// <param name="title"></param>
        /// <returns></returns>
        public string ConvertTitle(string title)
        {
            Dictionary<string,string> patterns = new Dictionary<string,string>();
            patterns.Add("a", "(â|ầ|ầ|ấ|ấ|ậ|ậ|ẩ|ẩ|ẫ|ẫ|ă|ằ|ằ|ắ|ắ|ặ|ặ|ẳ|ẳ|ẵ|ẵ|à|à|á|á|ạ|ạ|ả|ả|ã|ã|Â|Ầ|Ầ|Ấ|Ấ|Ậ|Ậ|A|Ẩ|Ẩ|Ẫ|Ẫ|Ă|Ắ|Ằ|Ằ|Ắ|Ặ|Ặ|Ẳ|Ẳ|Ẵ|Ẵ|À|À|Á|Á|Ạ|Ạ|Ả|Ả|Ã|Ã)");
            patterns.Add("e", "(ê|ề|ề|ế|ế|ệ|ệ|ể|ể|ễ|ễ|è|è|é|é|ẹ|ẹ|ẻ|ẻ|ẽ|ẽ|Ẽ|Ẽ|Ê|Ề|E|Ề|Ế|Ế|Ệ|Ệ|Ể|Ể|Ễ|Ễ|È|È|É|É|Ẹ|Ẹ|Ẻ|Ẻ)");
            patterns.Add("i", "(ì|ì|í|í|ị|ị|ỉ|ỉ|ĩ|ĩ|Ì|Ì|Í|Í|Ị|Ị|I|Ỉ|Ỉ|Ĩ|Ĩ)");
            patterns.Add("o", "(ô|ồ|ồ|ố|ố|ộ|ộ|ổ|ổ|ỗ|ỗ|ơ|ờ|ờ|ớ|ớ|ợ|ợ|ở|ở|ỡ|ỡ|ò|ò|ó|ó|ọ|ọ|ỏ|ỏ|õ|õ|Ô|Ồ|Ồ|Ố|Ố|O|Ộ|Ộ|Ổ|Ổ|Ỗ|Ỗ|Ờ|Ơ|Ờ|Ớ|Ớ|Ợ|Ợ|Ở|Ở|Ỡ|Ỡ|Ò|Ò|Ó|Ó|Ọ|Ọ|Ỏ|Ỏ|Õ|Õ)");
            patterns.Add("u", "(ư|ừ|ừ|ứ|ứ|ự|ự|ử|ử|ữ|ữ|ù|ù|ú|ú|ụ|ụ|ủ|ủ|ũ|ũ|Ư|Ừ|Ừ|U|Ứ|Ứ|Ự|Ự|Ử|Ử|Ữ|Ữ|Ù|Ù|Ú|Ú|Ụ|Ụ|Ủ|Ủ|Ũ|Ũ)");
            patterns.Add("y", "(ỳ|ỳ|ý|ý|ỵ|ỵ|ỷ|ỷ|ỹ|ỹ|Ỳ|Ỳ|Ý|Ý|Ỵ|Y|Ỵ|Ỷ|Ỷ|Ỹ|Ỹ)");
            patterns.Add("d", "(đ|Đ)");
            foreach(KeyValuePair<string,string> item in patterns){
                Regex r = new Regex(item.Value);
                title = r.Replace(title, item.Key);
            }
            title = title.Replace("&*#39;", "");
            return title;
        }
    }
}
